package com.prevpn.service;

import com.prevpn.common.CommonResponse;
import java.util.Map;

import com.prevpn.dto.RoleAssignResourceDTO;
import com.prevpn.dto.RoleCreateDTO;
import com.prevpn.vo.RoleDetailVO;

/**
 * 角色管理服务接口
 */
public interface RoleService {
    /**
     * 新增角色
     */
    CommonResponse<Map<String, Object>> createRole(RoleCreateDTO dto);

    /**
     * 基于角色名称查询角色详情
     */
    CommonResponse<RoleDetailVO> queryRoleByName(String directoryDomain, String name, Integer type);

    /**
     * 为角色分配应用权限（基于名称）
     */
    CommonResponse<Object> assignResourceByName(RoleAssignResourceDTO dto);

    /**
     * 查询角色列表（分页 + 模糊搜索）
     */
    CommonResponse<Map<String, Object>> queryRoleList(Map<String, Object> body);

    /**
     * 批量删除角色（基于名称）
     * @param body 包含 directoryDomain 和 nameList 的请求体
     * @return 通用响应对象
     */
    CommonResponse<Map<String, Object>> bulkDeleteByNameList(Map<String, Object> body);

    /**
     * 编辑角色（基于名称）
     * @param body 包含 directoryDomain、name、newName、description、type、resourceList 的请求体
     * @return 通用响应对象
     */
    CommonResponse<Map<String, Object>> updateRoleByName(Map<String, Object> body);
}
